0 CpxTRS
↳1 NestedDefinedSymbolProof (BOTH BOUNDS(ID, ID), 0 ms)
↳2 CpxTRS
↳3 TrsToWeightedTrsProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CpxWeightedTrs
↳5 TypeInferenceProof (BOTH BOUNDS(ID, ID), 6 ms)
↳6 CpxTypedWeightedTrs
↳7 CompletionProof (UPPER BOUND(ID), 0 ms)
↳8 CpxTypedWeightedCompleteTrs
↳9 NarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳10 CpxTypedWeightedCompleteTrs
↳11 CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID), 0 ms)
↳12 CpxRNTS
↳13 SimplificationProof (BOTH BOUNDS(ID, ID), 0 ms)
↳14 CpxRNTS
↳15 CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID), 0 ms)
↳16 CpxRNTS
↳17 IntTrsBoundProof (UPPER BOUND(ID), 348 ms)
↳18 CpxRNTS
↳19 IntTrsBoundProof (UPPER BOUND(ID), 20 ms)
↳20 CpxRNTS
↳21 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳22 CpxRNTS
↳23 IntTrsBoundProof (UPPER BOUND(ID), 382 ms)
↳24 CpxRNTS
↳25 IntTrsBoundProof (UPPER BOUND(ID), 108 ms)
↳26 CpxRNTS
↳27 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳28 CpxRNTS
↳29 IntTrsBoundProof (UPPER BOUND(ID), 429 ms)
↳30 CpxRNTS
↳31 IntTrsBoundProof (UPPER BOUND(ID), 202 ms)
↳32 CpxRNTS
↳33 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳34 CpxRNTS
↳35 IntTrsBoundProof (UPPER BOUND(ID), 1479 ms)
↳36 CpxRNTS
↳37 IntTrsBoundProof (UPPER BOUND(ID), 928 ms)
↳38 CpxRNTS
↳39 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳40 CpxRNTS
↳41 IntTrsBoundProof (UPPER BOUND(ID), 3084 ms)
↳42 CpxRNTS
↳43 IntTrsBoundProof (UPPER BOUND(ID), 1330 ms)
↳44 CpxRNTS
↳45 FinalProof (⇔, 0 ms)
↳46 BOUNDS(1, n^2)
if(true, x, y) → x
if(false, x, y) → y
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
app(nil, l) → l
app(cons(x, l1), l2) → cons(x, app(l1, l2))
app(app(l1, l2), l3) → app(l1, app(l2, l3))
mem(x, nil) → false
mem(x, cons(y, l)) → ifmem(eq(x, y), x, l)
ifmem(true, x, l) → true
ifmem(false, x, l) → mem(x, l)
inter(x, nil) → nil
inter(nil, x) → nil
inter(app(l1, l2), l3) → app(inter(l1, l3), inter(l2, l3))
inter(l1, app(l2, l3)) → app(inter(l1, l2), inter(l1, l3))
inter(cons(x, l1), l2) → ifinter(mem(x, l2), x, l1, l2)
inter(l1, cons(x, l2)) → ifinter(mem(x, l1), x, l2, l1)
ifinter(true, x, l1, l2) → cons(x, inter(l1, l2))
ifinter(false, x, l1, l2) → inter(l1, l2)
inter(cons(x, l1), l2) → ifinter(mem(x, l2), x, l1, l2)
mem(x, cons(y, l)) → ifmem(eq(x, y), x, l)
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
ifmem(false, x, l) → mem(x, l)
ifinter(true, x, l1, l2) → cons(x, inter(l1, l2))
mem(x, nil) → false
app(cons(x, l1), l2) → cons(x, app(l1, l2))
ifinter(false, x, l1, l2) → inter(l1, l2)
ifmem(true, x, l) → true
eq(0, 0) → true
inter(l1, cons(x, l2)) → ifinter(mem(x, l1), x, l2, l1)
app(nil, l) → l
inter(x, nil) → nil
inter(nil, x) → nil
if(true, x, y) → x
if(false, x, y) → y
inter(cons(x, l1), l2) → ifinter(mem(x, l2), x, l1, l2) [1]
mem(x, cons(y, l)) → ifmem(eq(x, y), x, l) [1]
eq(0, s(x)) → false [1]
eq(s(x), 0) → false [1]
eq(s(x), s(y)) → eq(x, y) [1]
ifmem(false, x, l) → mem(x, l) [1]
ifinter(true, x, l1, l2) → cons(x, inter(l1, l2)) [1]
mem(x, nil) → false [1]
app(cons(x, l1), l2) → cons(x, app(l1, l2)) [1]
ifinter(false, x, l1, l2) → inter(l1, l2) [1]
ifmem(true, x, l) → true [1]
eq(0, 0) → true [1]
inter(l1, cons(x, l2)) → ifinter(mem(x, l1), x, l2, l1) [1]
app(nil, l) → l [1]
inter(x, nil) → nil [1]
inter(nil, x) → nil [1]
if(true, x, y) → x [1]
if(false, x, y) → y [1]
inter(cons(x, l1), l2) → ifinter(mem(x, l2), x, l1, l2) [1]
mem(x, cons(y, l)) → ifmem(eq(x, y), x, l) [1]
eq(0, s(x)) → false [1]
eq(s(x), 0) → false [1]
eq(s(x), s(y)) → eq(x, y) [1]
ifmem(false, x, l) → mem(x, l) [1]
ifinter(true, x, l1, l2) → cons(x, inter(l1, l2)) [1]
mem(x, nil) → false [1]
app(cons(x, l1), l2) → cons(x, app(l1, l2)) [1]
ifinter(false, x, l1, l2) → inter(l1, l2) [1]
ifmem(true, x, l) → true [1]
eq(0, 0) → true [1]
inter(l1, cons(x, l2)) → ifinter(mem(x, l1), x, l2, l1) [1]
app(nil, l) → l [1]
inter(x, nil) → nil [1]
inter(nil, x) → nil [1]
if(true, x, y) → x [1]
if(false, x, y) → y [1]
inter :: cons:nil → cons:nil → cons:nil cons :: 0:s → cons:nil → cons:nil ifinter :: false:true → 0:s → cons:nil → cons:nil → cons:nil mem :: 0:s → cons:nil → false:true ifmem :: false:true → 0:s → cons:nil → false:true eq :: 0:s → 0:s → false:true 0 :: 0:s s :: 0:s → 0:s false :: false:true true :: false:true nil :: cons:nil app :: cons:nil → cons:nil → cons:nil if :: false:true → if → if → if |
(a) The obligation is a constructor system where every type has a constant constructor,
(b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols:
inter
ifinter
app
if
mem
eq
ifmem
const
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
0 => 0
false => 0
true => 1
nil => 0
const => 0
app(z, z') -{ 1 }→ l :|: z' = l, l >= 0, z = 0
app(z, z') -{ 1 }→ 1 + x + app(l1, l2) :|: x >= 0, z = 1 + x + l1, z' = l2, l1 >= 0, l2 >= 0
eq(z, z') -{ 1 }→ eq(x, y) :|: z' = 1 + y, x >= 0, y >= 0, z = 1 + x
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' = 1 + x, x >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: x >= 0, z = 1 + x, z' = 0
if(z, z', z'') -{ 1 }→ x :|: z' = x, z'' = y, z = 1, x >= 0, y >= 0
if(z, z', z'') -{ 1 }→ y :|: z' = x, z'' = y, x >= 0, y >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(l1, l2) :|: z' = x, x >= 0, z1 = l2, z'' = l1, l1 >= 0, z = 0, l2 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + x + inter(l1, l2) :|: z' = x, z = 1, x >= 0, z1 = l2, z'' = l1, l1 >= 0, l2 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(x, l) :|: z' = x, x >= 0, l >= 0, z = 0, z'' = l
ifmem(z, z', z'') -{ 1 }→ 1 :|: z' = x, z = 1, x >= 0, l >= 0, z'' = l
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: x >= 0, z = x, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' = x, x >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(x1, y''), 1 + x1, l) :|: x1 >= 0, z' = 1 + (1 + y'') + l, z = 1 + x1, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, l) :|: l >= 0, z = 0, z' = 1 + 0 + l
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + x'', l) :|: z = 1 + x'', l >= 0, x'' >= 0, z' = 1 + 0 + l
mem(z, z') -{ 1 }→ 0 :|: x >= 0, z = x, z' = 0
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 1 }→ 1 + x + app(l1, z') :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 }→ eq(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(z - 1, y''), 1 + (z - 1), l) :|: z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
{ if } { app } { eq } { ifmem, mem } { inter, ifinter } |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 1 }→ 1 + x + app(l1, z') :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 }→ eq(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(z - 1, y''), 1 + (z - 1), l) :|: z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 1 }→ 1 + x + app(l1, z') :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 }→ eq(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(z - 1, y''), 1 + (z - 1), l) :|: z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: ?, size: O(n1) [z' + z''] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 1 }→ 1 + x + app(l1, z') :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 }→ eq(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(z - 1, y''), 1 + (z - 1), l) :|: z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 1 }→ 1 + x + app(l1, z') :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 }→ eq(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(z - 1, y''), 1 + (z - 1), l) :|: z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 1 }→ 1 + x + app(l1, z') :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 }→ eq(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(z - 1, y''), 1 + (z - 1), l) :|: z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: ?, size: O(n1) [z + z'] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 1 }→ 1 + x + app(l1, z') :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 }→ eq(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(z - 1, y''), 1 + (z - 1), l) :|: z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z], size: O(n1) [z + z'] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 2 + l1 }→ 1 + x + s :|: s >= 0, s <= 1 * l1 + 1 * z', x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 }→ eq(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(z - 1, y''), 1 + (z - 1), l) :|: z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z], size: O(n1) [z + z'] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 2 + l1 }→ 1 + x + s :|: s >= 0, s <= 1 * l1 + 1 * z', x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 }→ eq(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(z - 1, y''), 1 + (z - 1), l) :|: z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z], size: O(n1) [z + z'] eq: runtime: ?, size: O(1) [1] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 2 + l1 }→ 1 + x + s :|: s >= 0, s <= 1 * l1 + 1 * z', x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 }→ eq(z - 1, z' - 1) :|: z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y'), x, l'), x, l1, 1 + y' + l') :|: x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 2 }→ ifinter(ifmem(eq(x, y1), x, l''), x, l2, 1 + y1 + l'') :|: y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(eq(z - 1, y''), 1 + (z - 1), l) :|: z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z], size: O(n1) [z + z'] eq: runtime: O(n1) [1 + z'], size: O(1) [1] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 2 + l1 }→ 1 + x + s :|: s >= 0, s <= 1 * l1 + 1 * z', x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 + z' }→ s1 :|: s1 >= 0, s1 <= 1, z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 3 + y' }→ ifinter(ifmem(s', x, l'), x, l1, 1 + y' + l') :|: s' >= 0, s' <= 1, x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 3 + y1 }→ ifinter(ifmem(s2, x, l''), x, l2, 1 + y1 + l'') :|: s2 >= 0, s2 <= 1, y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 3 + y'' }→ ifmem(s'', 1 + (z - 1), l) :|: s'' >= 0, s'' <= 1, z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z], size: O(n1) [z + z'] eq: runtime: O(n1) [1 + z'], size: O(1) [1] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 2 + l1 }→ 1 + x + s :|: s >= 0, s <= 1 * l1 + 1 * z', x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 + z' }→ s1 :|: s1 >= 0, s1 <= 1, z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 3 + y' }→ ifinter(ifmem(s', x, l'), x, l1, 1 + y' + l') :|: s' >= 0, s' <= 1, x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 3 + y1 }→ ifinter(ifmem(s2, x, l''), x, l2, 1 + y1 + l'') :|: s2 >= 0, s2 <= 1, y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 3 + y'' }→ ifmem(s'', 1 + (z - 1), l) :|: s'' >= 0, s'' <= 1, z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z], size: O(n1) [z + z'] eq: runtime: O(n1) [1 + z'], size: O(1) [1] ifmem: runtime: ?, size: O(1) [1] mem: runtime: ?, size: O(1) [1] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 2 + l1 }→ 1 + x + s :|: s >= 0, s <= 1 * l1 + 1 * z', x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 + z' }→ s1 :|: s1 >= 0, s1 <= 1, z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 1 }→ mem(z', z'') :|: z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 3 + y' }→ ifinter(ifmem(s', x, l'), x, l1, 1 + y' + l') :|: s' >= 0, s' <= 1, x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 3 + y1 }→ ifinter(ifmem(s2, x, l''), x, l2, 1 + y1 + l'') :|: s2 >= 0, s2 <= 1, y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 3 + y'' }→ ifmem(s'', 1 + (z - 1), l) :|: s'' >= 0, s'' <= 1, z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 }→ ifmem(1, 0, z' - 1) :|: z' - 1 >= 0, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 0, l) :|: x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 }→ ifmem(0, 1 + (z - 1), z' - 1) :|: z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z], size: O(n1) [z + z'] eq: runtime: O(n1) [1 + z'], size: O(1) [1] ifmem: runtime: O(n1) [7 + 7·z''], size: O(1) [1] mem: runtime: O(n1) [5 + 7·z'], size: O(1) [1] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 2 + l1 }→ 1 + x + s :|: s >= 0, s <= 1 * l1 + 1 * z', x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 + z' }→ s1 :|: s1 >= 0, s1 <= 1, z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 6 + 7·z'' }→ s8 :|: s8 >= 0, s8 <= 1, z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 10 + 7·l' + y' }→ ifinter(s3, x, l1, 1 + y' + l') :|: s3 >= 0, s3 <= 1, s' >= 0, s' <= 1, x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 10 + 7·l'' + y1 }→ ifinter(s9, x, l2, 1 + y1 + l'') :|: s9 >= 0, s9 <= 1, s2 >= 0, s2 <= 1, y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 9 + 7·l }→ s4 :|: s4 >= 0, s4 <= 1, x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 + 7·z' }→ s5 :|: s5 >= 0, s5 <= 1, z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 10 + 7·l + y'' }→ s6 :|: s6 >= 0, s6 <= 1, s'' >= 0, s'' <= 1, z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 + 7·z' }→ s7 :|: s7 >= 0, s7 <= 1, z' - 1 >= 0, z = 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z], size: O(n1) [z + z'] eq: runtime: O(n1) [1 + z'], size: O(1) [1] ifmem: runtime: O(n1) [7 + 7·z''], size: O(1) [1] mem: runtime: O(n1) [5 + 7·z'], size: O(1) [1] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 2 + l1 }→ 1 + x + s :|: s >= 0, s <= 1 * l1 + 1 * z', x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 + z' }→ s1 :|: s1 >= 0, s1 <= 1, z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 6 + 7·z'' }→ s8 :|: s8 >= 0, s8 <= 1, z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 10 + 7·l' + y' }→ ifinter(s3, x, l1, 1 + y' + l') :|: s3 >= 0, s3 <= 1, s' >= 0, s' <= 1, x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 10 + 7·l'' + y1 }→ ifinter(s9, x, l2, 1 + y1 + l'') :|: s9 >= 0, s9 <= 1, s2 >= 0, s2 <= 1, y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 9 + 7·l }→ s4 :|: s4 >= 0, s4 <= 1, x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 + 7·z' }→ s5 :|: s5 >= 0, s5 <= 1, z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 10 + 7·l + y'' }→ s6 :|: s6 >= 0, s6 <= 1, s'' >= 0, s'' <= 1, z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 + 7·z' }→ s7 :|: s7 >= 0, s7 <= 1, z' - 1 >= 0, z = 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z], size: O(n1) [z + z'] eq: runtime: O(n1) [1 + z'], size: O(1) [1] ifmem: runtime: O(n1) [7 + 7·z''], size: O(1) [1] mem: runtime: O(n1) [5 + 7·z'], size: O(1) [1] inter: runtime: ?, size: O(n1) [z + z'] ifinter: runtime: ?, size: O(n1) [1 + z' + z'' + z1] |
app(z, z') -{ 1 }→ z' :|: z' >= 0, z = 0
app(z, z') -{ 2 + l1 }→ 1 + x + s :|: s >= 0, s <= 1 * l1 + 1 * z', x >= 0, z = 1 + x + l1, l1 >= 0, z' >= 0
eq(z, z') -{ 1 + z' }→ s1 :|: s1 >= 0, s1 <= 1, z - 1 >= 0, z' - 1 >= 0
eq(z, z') -{ 1 }→ 1 :|: z = 0, z' = 0
eq(z, z') -{ 1 }→ 0 :|: z' - 1 >= 0, z = 0
eq(z, z') -{ 1 }→ 0 :|: z - 1 >= 0, z' = 0
if(z, z', z'') -{ 1 }→ z' :|: z = 1, z' >= 0, z'' >= 0
if(z, z', z'') -{ 1 }→ z'' :|: z' >= 0, z'' >= 0, z = 0
ifinter(z, z', z'', z1) -{ 1 }→ inter(z'', z1) :|: z' >= 0, z'' >= 0, z = 0, z1 >= 0
ifinter(z, z', z'', z1) -{ 1 }→ 1 + z' + inter(z'', z1) :|: z = 1, z' >= 0, z'' >= 0, z1 >= 0
ifmem(z, z', z'') -{ 6 + 7·z'' }→ s8 :|: s8 >= 0, s8 <= 1, z' >= 0, z'' >= 0, z = 0
ifmem(z, z', z'') -{ 1 }→ 1 :|: z = 1, z' >= 0, z'' >= 0
inter(z, z') -{ 10 + 7·l' + y' }→ ifinter(s3, x, l1, 1 + y' + l') :|: s3 >= 0, s3 <= 1, s' >= 0, s' <= 1, x >= 0, z = 1 + x + l1, l' >= 0, y' >= 0, z' = 1 + y' + l', l1 >= 0
inter(z, z') -{ 10 + 7·l'' + y1 }→ ifinter(s9, x, l2, 1 + y1 + l'') :|: s9 >= 0, s9 <= 1, s2 >= 0, s2 <= 1, y1 >= 0, l'' >= 0, x >= 0, z' = 1 + x + l2, l2 >= 0, z = 1 + y1 + l''
inter(z, z') -{ 2 }→ ifinter(0, x, l1, 0) :|: x >= 0, z = 1 + x + l1, l1 >= 0, z' = 0
inter(z, z') -{ 2 }→ ifinter(0, x, l2, 0) :|: x >= 0, z' = 1 + x + l2, z = 0, l2 >= 0
inter(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
inter(z, z') -{ 1 }→ 0 :|: z' >= 0, z = 0
mem(z, z') -{ 9 + 7·l }→ s4 :|: s4 >= 0, s4 <= 1, x' >= 0, l >= 0, z' = 1 + (1 + x') + l, z = 0
mem(z, z') -{ 2 + 7·z' }→ s5 :|: s5 >= 0, s5 <= 1, z' - 1 >= 0, z - 1 >= 0
mem(z, z') -{ 10 + 7·l + y'' }→ s6 :|: s6 >= 0, s6 <= 1, s'' >= 0, s'' <= 1, z - 1 >= 0, z' = 1 + (1 + y'') + l, y'' >= 0, l >= 0
mem(z, z') -{ 2 + 7·z' }→ s7 :|: s7 >= 0, s7 <= 1, z' - 1 >= 0, z = 0
mem(z, z') -{ 1 }→ 0 :|: z >= 0, z' = 0
if: runtime: O(1) [1], size: O(n1) [z' + z''] app: runtime: O(n1) [1 + z], size: O(n1) [z + z'] eq: runtime: O(n1) [1 + z'], size: O(1) [1] ifmem: runtime: O(n1) [7 + 7·z''], size: O(1) [1] mem: runtime: O(n1) [5 + 7·z'], size: O(1) [1] inter: runtime: O(n2) [1 + 27·z + 16·z·z' + 8·z2 + 27·z' + 8·z'2], size: O(n1) [z + z'] ifinter: runtime: O(n2) [2 + 27·z'' + 16·z''·z1 + 8·z''2 + 27·z1 + 8·z12], size: O(n1) [1 + z' + z'' + z1] |